#include <iostream>

using namespace std;
//静态成员就是在成员变量和成员函数前加上关键字static，称为静态成员

//静态成员分为:
//1、静态成员变量
//所有对象共享同一份数据
//在编译阶段分配内存
//类内声明，类外初始化

class Person {
public:
    static int age;
private:
    static int high;
};

int Person::age = 10;
int Person::high = 20;


void test1() {
    Person person1;
    cout << person1.age << endl;
    Person person2;
    person2.age = 20;
    cout << person1.age << endl;
    cout << person2.age << endl;
}

void test2() {
    //静态成员变量 不属于某个对象上，所有对象都共享同一份数据,因此静态成员变量有两种访问方式
    //1、通过对象进行访问
    Person person1;
    cout << person1.age << endl;
    //2、通过类名进行访问
    cout << Person::age << endl;
    //cout << Person::high << endl;
}

int main() {
    test1();
    cout << "=========" << endl;
    test2();
    return 0;
}

